package classes;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 *
 * @author roberta.m.carvalho
 */
public class Imagem {

    private int idImagem;
    private byte[] imagem;
    private Evento idEvento;
    private String caminho;
    private String nome;

    public Imagem() {
    }

    public byte[] retornaBytesArquivo(File inFile) throws IOException {

        byte[] buffer = null;
        if (inFile != null) {
            InputStream is = null;
            is = new FileInputStream(inFile);
            buffer = new byte[is.available()];
            is.read(buffer);
            is.close();
        }
        return buffer;
    }

    public static BufferedImage rescale(Image image, int height, int width) {

        BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D gg = result.createGraphics();
        try {
            gg.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            gg.drawImage(image.getScaledInstance(width,height,10000), 0, 0,null);
        } finally {
            gg.dispose();
        }
        return result;
    }

    /**
     * @return the idImagem
     */
    public int getIdImagem() {
        return idImagem;
    }

    /**
     * @param idImagem the idImagem to set
     */
    public void setIdImagem(int idImagem) {
        this.idImagem = idImagem;
    }

    /**
     * @return the idEvento
     */
    public Evento getIdEvento() {
        return idEvento;
    }

    /**
     * @param idEvento the idEvento to set
     */
    public void setIdEvento(Evento idEvento) {
        this.idEvento = idEvento;
    }

    /**
     * @return the imagem
     */
    public byte[] getImagem() {
        return imagem;
    }

    /**
     * @param imagem the imagem to set
     */
    public void setImagem(byte[] imagem) {
        this.imagem = imagem;
    }

    /**
     * @return the caminho
     */
    public String getCaminho() {
        return caminho;
    }

    /**
     * @param caminho the caminho to set
     */
    public void setCaminho(String caminho) {
        this.caminho = caminho;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }
}
